//============================================================================
// Copyright (C) 2003-2013 Brett R. Jones 
// All Rights Reserved
//
// You may redistribute and/or modify for non commercial and commercial uses 
// provided this copyright notice remains in place and is not modified
//
// This code is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//
// brettjones1900@gmail.com
// http://www.p2panarchy.com
//============================================================================
#pragma once

#pragma pack(push) 
#pragma pack(1)

// entity movement vector + timing
class PktEntMoveReq : public VxPktHdr, public EntVector
{
public:
	PktEntMoveReq()
	{
		m_u16PktLen = sizeof( PktEntPosReq );
		m_u16PktType = PKT_TYPE_ENT_MOVE_REQ;
		u16Flags = 0;		// 
		u64Sn = 0;			// serial number of entity
	}
	_inline EntVector * GetEntVector( void ){ return (EntVector *)this; }

	//=== vars ===//
	U16						u16Flags;		// flags of entity state etc
	U32						u64Sn;			// serial number of entity
	U32						u32ModelChangeTime; // time appearance changed ( ie new equipment worn )
	U32						u32Frame;		// frame number packet was sent on
	U32						u32Res1;		// reserved
	U32						u32Res2;		// reserved
};


//============================================================================
class PktEntMoveReply : public VxPktHdr, public EntVector
{
public:
	PktEntMoveReply()
	{
		m_u16PktLen = sizeof( PktEntMoveReply );
		m_u16PktType = PKT_TYPE_ENT_MOVE_REPLY;
		u16Flags = 0;		// flags of entity state etc
		u64Sn = 0;			// serial number of entity
	}
	_inline EntVector * GetEntVector( void ){ return (EntVector *)this; }

	//=== vars ===//
	U16						u16Flags;		// flags of entity state etc
	U32						u64Sn;			// serial number of entity
	U32						u32ModelChangeTime; // time appearance changed ( ie new equipment worn )
	U32						u32Frame;		// frame number packet was sent on
	U32						u32Res1;		// reserved
	U32						u32Res2;		// reserved
};
#pragma pack(pop)